package com.clstu.copy;

import com.clstu.practice.MainMenu;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
 * 这个类可以用于收发聊天信息
 */

public class JTextFieldDemo1 extends JFrame implements KeyListener{
    public static void main (String[] args) {
        new JTextFieldDemo1("阿龙");
    }
    //定义一些组件
    JButton btnSend ;//发送按钮
    JTextField txtUser;//user框
    JTextField txtMsg;//消息框
    JTextArea areaMsg ;//显示聊天记录的对话框
    JPanel sendPanel;//创建面板,用于放置与发送留言有关的组件
    JScrollPane msgPane;//创建带滚动条的面板
    private String userID;
    public JTextFieldDemo1 (String userID) {
        super("用户"+userID+"的聊天框");
        this.userID = userID;
        areaMsg=new JTextArea (10,30); //创建文本域以显示留言
        msgPane=new JScrollPane(areaMsg);//创建带滚动条的面板
        areaMsg.setEditable (false) ;//让文本域不可编辑
        sendPanel=new JPanel();//创建面板,用于放置与发送留言有关的组件
        txtUser=new JTextField(6);//创建文本框，列数为6,用于输入用户名
        txtMsg=new JTextField(20);//创建文本框，列数为20,用于输入留言信息
        btnSend=new JButton ("发送"); //创建发送按钮

        btnSend.addActionListener(new ActionListener() {//绑定发送按钮的单击事件
            @Override
            public void actionPerformed(ActionEvent e) {
                sent();
            }
        });

        //this.addKeyListener(this);
        txtMsg.addKeyListener(this);

        JLabel lblUser=new JLabel( "姓名");//创建文本标签
        JLabel lblMsg=new JLabel( "内容");
        sendPanel.add (lblUser) ; //添加文本标签到面板
        sendPanel.add( txtUser);
        sendPanel.add (lblMsg) ;
        sendPanel.add (txtMsg) ;
        sendPanel.add(btnSend) ;//添加按钮到面板，到此发送留言面板组合完毕

        this.add (msgPane,BorderLayout.CENTER);//将带滚动条的文本域添加到主窗体，位置为中央
        this.add (sendPanel,BorderLayout.SOUTH);//将发送留言面板添加到主窗体，位置为下方

        this .setTitle ("留言板");
        this.setLocation(500,300);
        this.setSize (500,200) ;
        this.setVisible (true) ;
//        this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) ;
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                new MainMenu(userID);
            }
        });

    }

    private void sent(){//把输入的消息发送到对话框

        String user = txtUser.getText(); //获取用户名
        String msg = txtMsg.getText(); //获取留言信息
        msg = user + ": " + msg + "\n"; //组合用户名与留言

        areaMsg.append(msg); //将信息追加到文本域
        txtMsg.setText("");//清空消息框
    }

    @Override
    public void keyTyped(KeyEvent e) {

    }
    @Override
    public void keyPressed(KeyEvent e) {
        if(e.getKeyCode() == KeyEvent.VK_ENTER){
            sent();
        }
    }
    @Override
    public void keyReleased(KeyEvent e) {
    }
}


